package com.linwen.javase.file;

import org.junit.Test;

import java.io.*;

/**
 * @author : linwen
 * @date : 下午11:33 2021/9/14
 */
public class ObjectStreamTest {

    /*
    * 对象流：对基本数据类型和对象进行流传输，
    * 将基本数据类型或对象序列化为二进制的文件，进行传输之后，再反序列化为对象
    *
    * */

    /*
    * 序列话对象
    * */
    @Test
    public void ObjectOutputStreamTest() throws IOException {
        // 1 造文件
        // 2 造流
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"));

        // 3 写入
        oos.writeObject(new Person("wlw",18));
        oos.flush();
        // 4 流关闭
        oos.close();
    }

    /*
    * 反序列化对象
    * */
    @Test
    public void ObiectInputStreamTest() throws IOException, ClassNotFoundException {
        // 1 造文件
        // 2 造流
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.dat"));

        // 3 读入
        Person person = (Person)ois.readObject();
        System.out.println(person);
        // 4 流关闭
        ois.close();
    }

}
